package com.brillilab.service.core.kit;

import com.brillilab.common.entity.PageVo;
import com.brillilab.domain.pa.kit.ReagentPlasmidTemplatePa;
import com.brillilab.domain.po.kit.ReagentPlasmid;
import com.brillilab.domain.po.kit.ReagentPlasmidUse;
import com.brillilab.domain.vo.kit.PlasmidTemplateListVo;

public interface IReagentPlasmidService {

	ReagentPlasmid insert(ReagentPlasmid entity);

	boolean deleteById(Long id);

	boolean updateById(ReagentPlasmid entity);

	ReagentPlasmid selectById(Long id);
	
	/**
	 * 获取质粒模版分页
	 * @param pa
	 * @return
	 */
	PageVo<PlasmidTemplateListVo> selectTemplatePage(ReagentPlasmidTemplatePa pa);
	
	/**
	 * 获取粒信息
	 * @param plasmidId
	 * @return
	 */
	ReagentPlasmid selectInfo(Long id);
	/**
	 * 获取粒信息
	 * @param plasmidId
	 * @return
	 */
	ReagentPlasmid selectOne(Long kitId, Long reagentId);
	
	/**
	 * 保存质粒使用记录
	 * @param entity
	 * @return
	 */
	ReagentPlasmidUse insertUse(ReagentPlasmidUse entity);
	
	/**
	 * 获取质粒使用记录
	 * @param plasmidId
	 * @return
	 */
	ReagentPlasmidUse selectUseOne(Long labId, Long reagentPlasmidId);
	
	boolean updateUseById(ReagentPlasmidUse entity);
}
